//1导入mongoose
const mongoose = require('mongoose');
//2链接mongodb服务
mongoose.connect('mongodb://127.0.0.1:27017/bilibili');
//3设置回调
//设置连接成功的回调
mongoose.connection.once('open',()=>{
    console.log('连接成功');
    //这里的代码写在回调函数里只是中间的过程，将来学promise还有一种更为简洁的写法
    //4.创建文档的结构对象,Schema单词本义是模式的意思，可以理解是结构，这个结构对象可以约束集合中文档的属性以及属性值的类型
    let BookSchema = new mongoose.Schema({name:String,author:String,price:Number,is_hot:Boolean})
    //5.设置模型对象，对文档操作（增删改查）的封装对象,第一个参数是操作的集合名称，第二个参数是结构对象
    let BookModel = mongoose.model('novel',BookSchema);
    //6.个性化读取
    BookModel.find().select({name:1,author:1,_id:0}).then((data)=>{
        console.log('个性化读取成功',data);//个性化读取成功
    }).catch((res)=>{
        console.log('个性化读取失败',res)//个性化读取失败
    })
})
//设置连接错误的回调
mongoose.connection.on('error',()=>{
    console.log('连接失败');
})
//设置连接关闭的回调
mongoose.connection.on('close',()=>{
    console.log('连接关闭');
})
//关闭mongodb的连接，会调上面连接关闭的回调
// setTimeout(()=>{
//     mongoose.disconnect();
// },2000)